# file    : tex.properties
# version : 18 august 2003
# author  : Hans Hagen / PRAGMA ADE / www.pragma-ade.com

# TeX users may want to use the Latin Modern Typewriter font:
#
#   font.monospace=font:LMTypewriter10,size:16.5
#   font.errorfont=font:LMTypewriter10,size:11.5
#
# These and more presets are done in context.properties.

# TeX: patterns

file.patterns.tex=*.tex;*.sty
file.patterns.latex=*.tex;*.sty;*.aux;*.toc;*.idx
file.patterns.context=*.tex;*.tui;*.tuo;*.sty

# filter to be checked/tested:

filter.context=TeX|$(file.patterns.tex)|
filter.context=LaTeX|$(file.patterns.latex)|
filter.context=ConTeXt|$(file.patterns.context)|

lexer.$(file.patterns.tex)=tex
lexer.$(file.patterns.latex)=tex
lexer.$(file.patterns.context)=tex

# TeX: commands (check process view)

command.compile.$(file.patterns.tex)=
command.build.$(file.patterns.tex)=tex $(FileNameExt)
command.go.$(file.patterns.tex)=gv $(FileName).pdf

command.compile.$(file.patterns.latex)=
command.build.$(file.patterns.latex)=pdflatex $(FileNameExt)
command.go.$(file.patterns.latex)=gv $(FileName).pdf

command.compile.$(file.patterns.context)=
command.build.$(file.patterns.context)=texexec --pdf $(FileNameExt)
command.go.$(file.patterns.context)=gv $(FileName).pdf

command.0.$(file.patterns.tex)=
command.1.$(file.patterns.tex)=
command.2.$(file.patterns.tex)=
command.3.$(file.patterns.tex)=
command.4.$(file.patterns.tex)=
command.5.$(file.patterns.tex)=
command.6.$(file.patterns.tex)=
command.7.$(file.patterns.tex)=
command.8.$(file.patterns.tex)=
command.9.$(file.patterns.tex)=

command.0.$(file.patterns.latex)=
command.1.$(file.patterns.latex)=
command.2.$(file.patterns.latex)=
command.3.$(file.patterns.latex)=
command.4.$(file.patterns.latex)=
command.5.$(file.patterns.latex)=
command.6.$(file.patterns.latex)=
command.7.$(file.patterns.latex)=
command.8.$(file.patterns.latex)=
command.9.$(file.patterns.latex)=

command.0.$(file.patterns.context)=
command.1.$(file.patterns.context)=
command.2.$(file.patterns.context)=
command.3.$(file.patterns.context)=
command.4.$(file.patterns.context)=
command.5.$(file.patterns.context)=
command.6.$(file.patterns.context)=
command.7.$(file.patterns.context)=
command.8.$(file.patterns.context)=
command.9.$(file.patterns.context)=

# BibTeX command
command.name.2.$(file.patterns.tex)=BibTeX
command.name.2.$(file.patterns.latex)=BibTeX
command.name.2.$(file.patterns.context)=BibTeX
command.2.$(file.patterns.tex)=bibtex $(FileName)
command.2.$(file.patterns.latex)=bibtex $(FileName)
command.2.$(file.patterns.context)=bibtex $(FileName)

# TeX: highlighting

# Default
style.tex.0=fore:#3F3F3F
# Special
style.tex.1=fore:#007F7F
# Group
style.tex.2=fore:#7F0000
# Symbol
style.tex.3=fore:#7F7F00
# Command
style.tex.4=fore:#007F00
# Text
# style.tex.5=fore:#000000

style.tex.34=fore:#00007F
style.tex.35=fore:#7F007F

# TeX: comments

comment.block.tex=%
comment.block.at.line.start.tex=1

# TeX: lexer.tex.interface.default
#
# 0 all \commands
# 1 tex etex pdftex omega primitives
# 2 context nl (when context.properties is loaded)
# 3 context en (when context.properties is loaded)
# 4 context de (when context.properties is loaded)
# 5 context cz (when context.properties is loaded)
# 6 context it (when context.properties is loaded)
# 7 context ro (when context.properties is loaded)
# 8 latex (no keywords yet; will move up)
#
# first lines of a tex file are interpreted as follows
#
# % interface=all|nl|en|de|cz|it|ro|latex

lexer.tex.interface.default=0

# TeX: lexer.tex.use.keywords
#
# 0 don't use keyword lists
# 1 use keyword lists

lexer.tex.use.keywords=1

# TeX: lexer.tex.comment.process
#
# 0 don't interpret comment
# 1 color comment like source code

lexer.tex.comment.process=0

# TeX: lexer.tex.auto.if
#
# 0 don't handle \if<unknown>
# 1 treat \if<unknown> as command

lexer.tex.auto.if=1

# TeX: keywords (incomplete, just for testing and as example)

keywordclass.primitives.tex=\
    above abovedisplayshortskip abovedisplayskip \
    abovewithdelims accent adjdemerits advance afterassignment \
    aftergroup atop atopwithdelims \
    badness baselineskip batchmode begingroup \
    belowdisplayshortskip belowdisplayskip binoppenalty botmark \
    box boxmaxdepth brokenpenalty \
    catcode char chardef cleaders closein closeout clubpenalty \
    copy count countdef cr crcr csname \
    day deadcycles def defaulthyphenchar defaultskewchar \
    delcode delimiter delimiterfactor delimeters \
    delimitershortfall delimeters dimen dimendef discretionary \
    displayindent displaylimits displaystyle \
    displaywidowpenalty displaywidth divide \
    doublehyphendemerits dp dump \
    edef else emergencystretch end endcsname endgroup endinput \
    endlinechar eqno errhelp errmessage errorcontextlines \
    errorstopmode escapechar everycr everydisplay everyhbox \
    everyjob everymath everypar everyvbox exhyphenpenalty \
    expandafter  \
    fam fi finalhyphendemerits firstmark floatingpenalty font \
    fontdimen fontname futurelet \
    gdef global group globaldefs \
    halign hangafter hangindent hbadness hbox hfil horizontal \
    hfill horizontal hfilneg hfuzz hoffset holdinginserts hrule \
    hsize hskip hss horizontal ht hyphenation hyphenchar \
    hyphenpenalty hyphen \
    if ifcase ifcat ifdim ifeof iffalse ifhbox ifhmode ifinner \
    ifmmode ifnum ifodd iftrue ifvbox ifvmode ifvoid ifx \
    ignorespaces immediate indent input inputlineno input \
    insert insertpenalties interlinepenalty \
    jobname \
    kern \
    language lastbox lastkern lastpenalty lastskip lccode \
    leaders left lefthyphenmin leftskip leqno let limits \
    linepenalty line lineskip lineskiplimit long looseness \
    lower lowercase \
    mag mark mathaccent mathbin mathchar mathchardef mathchoice \
    mathclose mathcode mathinner mathop mathopen mathord \
    mathpunct mathrel mathsurround maxdeadcycles maxdepth \
    meaning medmuskip message mkern month moveleft moveright \
    mskip multiply muskip muskipdef \
    newlinechar noalign noboundary noexpand noindent nolimits \
    nonscript scriptscript nonstopmode nulldelimiterspace \
    nullfont number \
    omit openin openout or outer output outputpenalty over \
    overfullrule overline overwithdelims \
    pagedepth pagefilllstretch pagefillstretch pagefilstretch \
    pagegoal pageshrink pagestretch pagetotal par parfillskip \
    parindent parshape parskip patterns pausing penalty \
    postdisplaypenalty predisplaypenalty predisplaysize \
    pretolerance prevdepth prevgraf \
    radical raise read relax relpenalty right righthyphenmin \
    rightskip romannumeral \
    scriptfont scriptscriptfont scriptscriptstyle scriptspace \
    scriptstyle scrollmode setbox setlanguage sfcode shipout \
    show showbox showboxbreadth showboxdepth showlists showthe \
    skewchar skip skipdef spacefactor spaceskip span special \
    splitbotmark splitfirstmark splitmaxdepth splittopskip \
    string \
    tabskip textfont textstyle the thickmuskip thinmuskip time \
    toks toksdef tolerance topmark topskip tracingcommands \
    tracinglostchars tracingmacros tracingonline tracingoutput \
    tracingpages tracingparagraphs tracingrestores tracingstats \
    uccode uchyph underline unhbox unhcopy unkern unpenalty \
    unskip unvbox unvcopy uppercase \
    vadjust valign vbadness vbox vcenter vfil vfill vfilneg \
    vfuzz voffset vrule vsize vskip vsplit vss vtop \
    wd widowpenalty write \
    xdef xleaders xspaceskip \
    year

keywordclass.primitives.etex=\
    beginL beginR botmarks \
    clubpenalties currentgrouplevel currentgrouptype \
    currentifbranch currentiflevel currentiftype \
    detokenize dimexpr displaywidowpenalties \
    endL endR eTeXrevision eTeXversion everyeof \
    firstmarks fontchardp fontcharht fontcharic fontcharwd \
    glueexpr glueshrink glueshrinkorder gluestretch \
    gluestretchorder gluetomu \
    ifcsname ifdefined iffontchar interactionmode \
    interactionmode interlinepenalties \
    lastlinefit lastnodetype \
    marks topmarks middle muexpr mutoglue \
    numexpr \
    pagediscards parshapedimen parshapeindent parshapelength \
    predisplaydirection \
    savinghyphcodes savingvdiscards scantokens showgroups \
    showifs showtokens splitdiscards splitfirstmarks \
    TeXXeTstate tracingassigns tracinggroups tracingifs \
    tracingnesting tracingscantokens \
    unexpanded unless \
    widowpenalties

keywordclass.primitives.pdftex=\
    pdfadjustspacing pdfannot pdfavoidoverfull \
    pdfcatalog pdfcompresslevel \
    pdfdecimaldigits pdfdest pdfdestmargin \
    pdfendlink pdfendthread \
    pdffontattr pdffontexpand pdffontname pdffontobjnum pdffontsize \
    pdfhorigin \
    pdfimageresolution pdfincludechars pdfinfo \
    pdflastannot pdflastdemerits pdflastobj \
    pdflastvbreakpenalty pdflastxform pdflastximage \
    pdflastximagepages pdflastxpos pdflastypos \
    pdflinesnapx pdflinesnapy pdflinkmargin pdfliteral \
    pdfmapfile pdfmaxpenalty pdfminpenalty pdfmovechars \
    pdfnames \
    pdfobj pdfoptionpdfminorversion pdfoutline pdfoutput \
    pdfpageattr pdfpageheight pdfpageresources pdfpagesattr \
    pdfpagewidth pdfpkresolution pdfprotrudechars \
    pdfrefobj pdfrefxform pdfrefximage \
    pdfsavepos pdfsnaprefpoint pdfsnapx pdfsnapy pdfstartlink \
    pdfstartthread \
    pdftexrevision pdftexversion pdfthread pdfthreadmargin \
    pdfuniqueresname \
    pdfvorigin \
    pdfxform pdfximage

keywordclass.primitives.omega=\
    odelimiter omathaccent omathchar oradical omathchardef omathcode odelcode \
    leftghost rightghost \
    charwd charht chardp charit \
    localleftbox localrightbox \
    localinterlinepenalty localbrokenpenalty \
    pagedir bodydir pardir textdir mathdir \
    boxdir nextfakemath \
    pagewidth pageheight pagerightoffset pagebottomoffset \
    nullocp nullocplist ocp externalocp ocplist pushocplist popocplist clearocplists ocptracelevel \
    addbeforeocplist addafterocplist removebeforeocplist removeafterocplist \
    OmegaVersion \
    InputTranslation OutputTranslation DefaultInputTranslation DefaultOutputTranslation \
    noInputTranslation noOutputTranslation \
    InputMode OutputMode DefaultInputMode DefaultOutputMode \
    noInputMode noOutputMode noDefaultInputMode noDefaultOutputMode

# only the macros that make sense:

keywordclass.macros.plain.partial=\
    TeX \
    bgroup egroup endgraf space empty null \
    newcount newdimen newskip newmuskip newbox newtoks newhelp newread newwrite newfam newlanguage newinsert newif \
    maxdimen magstephalf magstep \
    frenchspacing nonfrenchspacing normalbaselines obeylines obeyspaces raggedright ttraggedright \
    thinspace negthinspace enspace enskip quad qquad \
    smallskip medskip bigskip removelastskip topglue vglue hglue \
    break nobreak allowbreak filbreak goodbreak smallbreak medbreak bigbreak \
    line leftline rightline centerline rlap llap underbar strutbox strut \
    cases matrix pmatrix bordermatrix eqalign displaylines eqalignno leqalignno \
    pageno folio tracingall showhyphens fmtname fmtversion \
    hphantom vphantom phantom smash

keywordclass.macros.eplain.partial=\
    eTeX \
    newmarks grouptype interactionmode nodetype iftype \
    tracingall loggingall tracingnone

# for fun

keywordclass.primitives.pdftex.experimental=

keywordclass.primitives.all=\
    $(keywordclass.primitives.tex) \
    $(keywordclass.primitives.etex) \
    $(keywordclass.primitives.pdftex) \
    $(keywordclass.primitives.pdftex.experimental) \
    $(keywordclass.primitives.omega)

# hooks for context

keywordclass.macros.context.undocumented.en=
keywordclass.macros.context.undocumented.nl=
keywordclass.macros.context.undocumented.de=
keywordclass.macros.context.undocumented.cz=
keywordclass.macros.context.undocumented.it=
keywordclass.macros.context.undocumented.ro=

keywordclass.macros.context.extras=

keywordclass.macros.context.nl=
keywordclass.macros.context.en=
keywordclass.macros.context.de=
keywordclass.macros.context.cz=
keywordclass.macros.context.it=
keywordclass.macros.context.ro=

import cont-en-scite
import cont-nl-scite
import cont-de-scite
import cont-cz-scite
import cont-it-scite
import cont-ro-scite

import cont-xx-scite

# hooks for latex (file should define keywordclass.macros.latex.all)

keywordclass.macros.latex.all=

import latex-scite

# collections

keywordclass.tex.all=\
    $(keywordclass.primitives.tex) \
    $(keywordclass.macros.plain.partial)

keywordclass.etex.all=\
    $(keywordclass.primitives.tex) \
    $(keywordclass.primitives.etex) \
    $(keywordclass.macros.plain.partial) \
    $(keywordclass.macros.eplain.partial)

keywordclass.latex.all=\
    $(keywordclass.primitives.tex) \
    $(keywordclass.primitives.etex) \
    $(keywordclass.macros.latex.all)

keywordclass.pdflatex.all=\
    $(keywordclass.primitives.tex) \
    $(keywordclass.primitives.etex) \
    $(keywordclass.primitives.pdftex) \
    $(keywordclass.macros.latex.all)

# we can't use $(keywordclass.primitives.all) here due to some kind of
# limitation in nesting

keywordclass.context.base=\
    $(keywordclass.primitives.tex) \
    $(keywordclass.primitives.etex) \
    $(keywordclass.primitives.pdftex) \
    $(keywordclass.primitives.pdftex.experimental) \
    $(keywordclass.primitives.omega) \
    $(keywordclass.macros.plain.partial) \
    $(keywordclass.macros.eplain.partial)

keywordclass.context.all=\
    $(keywordclass.context.base) \
    $(keywordclass.macros.context.en) \
    $(keywordclass.macros.context.extras) \
    $(keywordclass.macros.context.undocumented.en)

keywordclass.context.all.nl=\
    $(keywordclass.context.base) \
    $(keywordclass.macros.context.nl) \
    $(keywordclass.macros.context.extras) \
    $(keywordclass.macros.context.undocumented.nl)

keywordclass.context.all.en=\
    $(keywordclass.context.base) \
    $(keywordclass.macros.context.en) \
    $(keywordclass.macros.context.extras) \
    $(keywordclass.macros.context.undocumented.en)

keywordclass.context.all.de=\
    $(keywordclass.context.base) \
    $(keywordclass.macros.context.de) \
    $(keywordclass.macros.context.extras) \
    $(keywordclass.macros.context.undocumented.de)

keywordclass.context.all.cz=\
    $(keywordclass.context.base) \
    $(keywordclass.macros.context.cz) \
    $(keywordclass.macros.context.extras) \
    $(keywordclass.macros.context.undocumented.cz)

keywordclass.context.all.it=\
    $(keywordclass.context.base) \
    $(keywordclass.macros.context.it) \
    $(keywordclass.macros.context.extras) \
    $(keywordclass.macros.context.undocumented.it)

keywordclass.context.all.ro=\
    $(keywordclass.context.base) \
    $(keywordclass.macros.context.ro) \
    $(keywordclass.macros.context.extras) \
    $(keywordclass.macros.context.undocumented.ro)

# hm

keywords.$(file.patterns.tex)=$(keywordclass.tex.all)
keywords.$(file.patterns.latex)=$(keywordclass.latex.all)
keywords.$(file.patterns.context)=$(keywordclass.context.all)

# keywords1 is not used since scintilla takes it from 'keywords'

keywords.$(file.patterns.context)=$(keywordclass.context.base)

keywords2.$(file.patterns.context)=$(keywordclass.context.all.nl)
keywords3.$(file.patterns.context)=$(keywordclass.context.all.en)
keywords4.$(file.patterns.context)=$(keywordclass.context.all.de)
keywords5.$(file.patterns.context)=$(keywordclass.context.all.cz)
keywords6.$(file.patterns.context)=$(keywordclass.context.all.it)
keywords7.$(file.patterns.context)=$(keywordclass.context.all.ro)

# keywords71.$(file.patterns.context)=$(keywordclass.tex.all)
# keywords72.$(file.patterns.context)=$(keywordclass.etex.all)
# keywords73.$(file.patterns.context)=$(keywordclass.pdftex.all)
# keywords74.$(file.patterns.context)=$(keywordclass.pdfetex.all)
#
# keywords91.$(file.patterns.context)=$(keywordclass.latex.all)

# for the moment LaTeX gets slot 8, but we will move it up as soon as
# more keyword lists can be defined

keywords8.$(file.patterns.context)=$(keywordclass.pdflatex.all)

# TeX: words

word.characters.$(file.patterns.tex)=$(chars.alpha)$(chars.numeric)$(chars.accented)\@
word.characters.$(file.patterns.latex)=$(chars.alpha)$(chars.numeric)$(chars.accented)\@
word.characters.$(file.patterns.context)=$(chars.alpha)$(chars.numeric)$(chars.accented)\@!?

# TeX: end of file